package com.codemonkey.lq.common.util;

import java.io.File;

public class PathHelper {

	private static String getCurrentLoc() {
		// E:\Java\_thirdlibsLearing\target\test-classes
		// 该类最终被编译之后所放在的那个基目录

		return System.getProperty("java.class.path").split(";")[0];
	}

	private static void makesureDirExist(String path) {
		File file = new File(path);
		if (file.exists()) {
			return;
		}

		boolean mkdirs = file.mkdirs();
		if (!mkdirs) {
			throw new UnsupportedOperationException("create parent dir fail!!!");
		}
	}

	// reference : 
	//    1. java获取程序根目录 WEB-INFO目录 CLASSES文件夹路径
	//           http://blog.sina.com.cn/s/blog_8dc68b4501014t8f.html
	//    2. 获取jar包路径和所在目录的几种方法 java 路径
	//           http://ysa198584.iteye.com/blog/1961568
	private static class JavaExePathExplorer {
		public void getCurrentLocation() throws Exception {
			seperate("获取当前类的所在工程路径");
			File f = new File(this.getClass().getResource("/").getPath());
			System.out.println(f.toString());

			seperate("获取当前类的绝对路径");
			f = new File(this.getClass().getResource("").getPath());
			System.out.println(f);

			seperate("获取当前类的所在工程路径");
			File directory = new File("");// 参数为空
			String courseFile = directory.getCanonicalPath();
			System.out.println(courseFile);

			seperate("获取当前工程src目录下test.txt文件的路径");
			java.net.URL xmlpath = this.getClass().getClassLoader().getResource("test.txt");
			System.out.println(xmlpath.getPath());

			seperate("获取当前工程路径 ");
			System.out.println(System.getProperty("user.dir"));

			seperate("获取当前工程路径");
			System.out.println(System.getProperty("java.class.path"));
		}

		private void seperate(String flag) {
			// System.out.println(System.lineSeparator());
			System.out.println("-----------------" + flag + "-----------------");
		}

	}

}
